{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "31cc1798-428d-420c-97ac-81d5c84d7eae",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple\n",
      "Collecting diffusers\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/e7/7a/f08f610cea8a3395ad3b4f586db23bedb43c68db6c3261145a15e7b63126/diffusers-0.33.1-py3-none-any.whl (3.6 MB)\n",
      "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.6/3.6 MB\u001b[0m \u001b[31m92.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m:00:01\u001b[0m\n",
      "\u001b[?25hCollecting importlib-metadata (from diffusers)\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/20/b0/36bd937216ec521246249be3bf9855081de4c5e06a0c9b4219dbeda50373/importlib_metadata-8.7.0-py3-none-any.whl (27 kB)\n",
      "Requirement already satisfied: filelock in /environment/miniconda3/lib/python3.11/site-packages (from diffusers) (3.13.4)\n",
      "Collecting huggingface-hub>=0.27.0 (from diffusers)\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/67/8b/222140f3cfb6f17b0dd8c4b9a0b36bd4ebefe9fb0098ba35d6960abcda0f/huggingface_hub-0.32.4-py3-none-any.whl (512 kB)\n",
      "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m512.1/512.1 kB\u001b[0m \u001b[31m42.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[?25hRequirement already satisfied: numpy in /environment/miniconda3/lib/python3.11/site-packages (from diffusers) (1.26.4)\n",
      "Collecting regex!=2019.12.17 (from diffusers)\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/bf/ce/0d0e61429f603bac433910d99ef1a02ce45a8967ffbe3cbee48599e62d88/regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (792 kB)\n",
      "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m792.7/792.7 kB\u001b[0m \u001b[31m52.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[?25hRequirement already satisfied: requests in /environment/miniconda3/lib/python3.11/site-packages (from diffusers) (2.31.0)\n",
      "Collecting safetensors>=0.3.1 (from diffusers)\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/a6/f8/dae3421624fcc87a89d42e1898a798bc7ff72c61f38973a65d60df8f124c/safetensors-0.5.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (471 kB)\n",
      "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m471.6/471.6 kB\u001b[0m \u001b[31m37.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[?25hRequirement already satisfied: Pillow in /environment/miniconda3/lib/python3.11/site-packages (from diffusers) (10.3.0)\n",
      "Requirement already satisfied: fsspec>=2023.5.0 in /environment/miniconda3/lib/python3.11/site-packages (from huggingface-hub>=0.27.0->diffusers) (2024.3.1)\n",
      "Requirement already satisfied: packaging>=20.9 in /environment/miniconda3/lib/python3.11/site-packages (from huggingface-hub>=0.27.0->diffusers) (23.2)\n",
      "Requirement already satisfied: pyyaml>=5.1 in /environment/miniconda3/lib/python3.11/site-packages (from huggingface-hub>=0.27.0->diffusers) (6.0.1)\n",
      "Requirement already satisfied: tqdm>=4.42.1 in /environment/miniconda3/lib/python3.11/site-packages (from huggingface-hub>=0.27.0->diffusers) (4.65.0)\n",
      "Requirement already satisfied: typing-extensions>=3.7.4.3 in /environment/miniconda3/lib/python3.11/site-packages (from huggingface-hub>=0.27.0->diffusers) (4.11.0)\n",
      "Collecting hf-xet<2.0.0,>=1.1.2 (from huggingface-hub>=0.27.0->diffusers)\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/52/48/e929e6e3db6e4758c2adf0f2ca2c59287f1b76229d8bdc1a4c9cfc05212e/hf_xet-1.1.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB)\n",
      "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m4.8/4.8 MB\u001b[0m \u001b[31m104.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m\n",
      "\u001b[?25hCollecting zipp>=3.20 (from importlib-metadata->diffusers)\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/ad/da/f64669af4cae46f17b90798a827519ce3737d31dbafad65d391e49643dc4/zipp-3.22.0-py3-none-any.whl (9.8 kB)\n",
      "Requirement already satisfied: charset-normalizer<4,>=2 in /environment/miniconda3/lib/python3.11/site-packages (from requests->diffusers) (2.0.4)\n",
      "Requirement already satisfied: idna<4,>=2.5 in /environment/miniconda3/lib/python3.11/site-packages (from requests->diffusers) (3.4)\n",
      "Requirement already satisfied: urllib3<3,>=1.21.1 in /environment/miniconda3/lib/python3.11/site-packages (from requests->diffusers) (2.1.0)\n",
      "Requirement already satisfied: certifi>=2017.4.17 in /environment/miniconda3/lib/python3.11/site-packages (from requests->diffusers) (2024.2.2)\n",
      "Installing collected packages: zipp, safetensors, regex, hf-xet, importlib-metadata, huggingface-hub, diffusers\n",
      "Successfully installed diffusers-0.33.1 hf-xet-1.1.3 huggingface-hub-0.32.4 importlib-metadata-8.7.0 regex-2024.11.6 safetensors-0.5.3 zipp-3.22.0\n"
     ]
    }
   ],
   "source": [
    "!pip install diffusers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "19cde8bc-bce7-432c-bb92-4a822df3dfbb",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple\n",
      "\u001b[31mERROR: Could not find a version that satisfies the requirement cleanfid (from versions: none)\u001b[0m\u001b[31m\n",
      "\u001b[0m\u001b[31mERROR: No matching distribution found for cleanfid\u001b[0m\u001b[31m\n",
      "\u001b[0m"
     ]
    }
   ],
   "source": [
    "!pip install cleanfid"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "daad117f-7ded-4b57-a974-e2e5d2dbef32",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/environment/miniconda3/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
      "  from .autonotebook import tqdm as notebook_tqdm\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using device: cuda\n",
      "Epoch 1/20, Loss: 0.0474\n",
      "Epoch 2/20, Loss: 0.0295\n",
      "Epoch 3/20, Loss: 0.0271\n",
      "Epoch 4/20, Loss: 0.0257\n",
      "Epoch 5/20, Loss: 0.0251\n",
      "Epoch 6/20, Loss: 0.0245\n",
      "Epoch 7/20, Loss: 0.0239\n",
      "Epoch 8/20, Loss: 0.0239\n",
      "Epoch 9/20, Loss: 0.0233\n",
      "Epoch 10/20, Loss: 0.0233\n",
      "Epoch 11/20, Loss: 0.0231\n",
      "Epoch 12/20, Loss: 0.0229\n",
      "Epoch 13/20, Loss: 0.0229\n",
      "Epoch 14/20, Loss: 0.0226\n",
      "Epoch 15/20, Loss: 0.0227\n",
      "Epoch 16/20, Loss: 0.0226\n",
      "Epoch 17/20, Loss: 0.0226\n",
      "Epoch 18/20, Loss: 0.0226\n",
      "Epoch 19/20, Loss: 0.0222\n",
      "Epoch 20/20, Loss: 0.0222\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA94AAAFkCAYAAADWo+MRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9vklEQVR4nO3dd3RUZff//R0C0muIFJUuqFQBAUFQlK/0CAKCdEGKDRsoIErHQlFuFBFvBERElKJIE0GKiFioCihSooJKL9KkZJ4/7sf5zd6QyUwy16TM+7WWa51PzplzruQwZXtmnyvK4/F4BAAAAAAAOJEptQcAAAAAAEBGRuENAAAAAIBDFN4AAAAAADhE4Q0AAAAAgEMU3gAAAAAAOEThDQAAAACAQxTeAAAAAAA4ROENAAAAAIBDFN4AAAAAADhE4Q0ASHeGDBkiUVFRyXrstGnTJCoqSuLj40M7KB/x8fESFRUl06ZNc3YMAACQflB4AwDCZtu2bdKxY0e55pprJGvWrFK0aFHp0KGDbNu2LbWHFnYlSpSQqKioJP8LVfE+atQo+fjjjwPa9t//cTBmzJiQHBsAgEiXObUHAACIDPPmzZP7779fChQoIN27d5eSJUtKfHy8TJkyRebMmSMffPCBtGzZMqB9DRo0SPr375+scXTq1EnatWsnWbNmTdbjQ+W1116TU6dOefPixYtl1qxZ8uqrr0rBggW9P69du3ZIjjdq1Chp3bq1tGjRIiT7AwAAgaPwBgA4t3v3bunUqZOUKlVK1qxZI7Gxsd51jz/+uNStW1c6deokW7dulVKlSiW6n9OnT0vOnDklc+bMkjlz8t7CoqOjJTo6OlmPDSVbAP/1118ya9YsadGihZQoUSJVxgQAANzgq+YAAOdGjx4tZ86ckcmTJ6uiW0SkYMGC8tZbb8np06fllVde8f783z7u7du3S/v27SV//vxy2223qXW+zp49K3369JGCBQtK7ty5JS4uTvbv3y9RUVEyZMgQ73ZX6vEuUaKENGvWTNauXSs1atSQbNmySalSpeTdd99Vxzh69Kj07dtXKlasKLly5ZI8efJI48aNZcuWLSH6S13uvffek2rVqkn27NmlQIEC0q5dO/n999/VNr/88ou0atVKChcuLNmyZZNrr71W2rVrJydOnBARkaioKDl9+rRMnz7d+xX2rl27BjWOf/9ua9eulT59+khsbKzky5dPevXqJefPn5fjx49L586dJX/+/JI/f3555plnxOPxqH2MGTNGateuLTExMZI9e3apVq2azJkz57JjBXouRUT2798v3bp1k0KFCknWrFmlfPny8s4771y2zwkTJkj58uUlR44ckj9/fqlevbq8//77Qf0NAABILq54AwCc+/TTT6VEiRJSt27dK66vV6+elChRQhYtWnTZujZt2sj1118vo0aNuqyQ89W1a1f58MMPpVOnTlKrVi1ZvXq1NG3aNOAx7tq1S1q3bi3du3eXLl26yDvvvCNdu3aVatWqSfny5UVEZM+ePfLxxx9LmzZtpGTJknLgwAF566235Pbbb5ft27dL0aJFAz5eIEaOHCnPP/+83HffffLggw/KoUOHZMKECVKvXj3ZtGmT5MuXT86fPy8NGzaUf/75Rx577DEpXLiw7N+/XxYuXCjHjx+XvHnzyowZM+TBBx+UGjVqSM+ePUVEpHTp0ska07/HGDp0qKxfv14mT54s+fLlk3Xr1kmxYsVk1KhRsnjxYhk9erRUqFBBOnfu7H3s+PHjJS4uTjp06CDnz5+XDz74QNq0aSMLFy5U5yrQc3ngwAGpVauWREVFyaOPPiqxsbGyZMkS6d69u5w8eVKeeOIJERF5++23pU+fPtK6dWt5/PHH5dy5c7J161b55ptvpH379sn6OwAAEBQPAAAOHT9+3CMinnvuucfvdnFxcR4R8Zw8edLj8Xg8gwcP9oiI5/77779s23/X/WvDhg0eEfE88cQTaruuXbt6RMQzePBg78+mTp3qERHP3r17vT8rXry4R0Q8a9as8f7s4MGDnqxZs3qefvpp78/OnTvnuXTpkjrG3r17PVmzZvUMGzZM/UxEPFOnTvX7O/saPXq0Gld8fLwnOjraM3LkSLXdDz/84MmcObP355s2bfKIiOejjz7yu/+cOXN6unTpEtBY/h3/6NGjvT/79+/WsGFDT0JCgvfnt956qycqKsrTu3dv788uXrzoufbaaz2333672u+ZM2dUPn/+vKdChQqeO++80/uzYM5l9+7dPUWKFPEcPnxYbduuXTtP3rx5vce75557POXLlw/odwcAwAW+ag4AcOrvv/8WEZHcuXP73e7f9SdPnlQ/7927d5LHWLp0qYiIPPzww+rnjz32WMDjvOmmm9QV+djYWClXrpzs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",
      "text/plain": [
       "<Figure size 1000x400 with 16 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA94AAAFkCAYAAADWo+MRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABGxElEQVR4nO3deZzNdf//8RdjG4zd2JcQKrSoZOmyxVhLXRIttkSIKJcrrihx5aK0SRKFhESbylKJSLrakC3ZIvs+GFvM+f1x/Trf83oN58yZc94z58w87rdbt9vn6fM5n/Oez3bOu/N5fd7ZPB6PRwAAAAAAgBPZM7oBAAAAAABkZnS8AQAAAABwiI43AAAAAAAO0fEGAAAAAMAhOt4AAAAAADhExxsAAAAAAIfoeAMAAAAA4BAdbwAAAAAAHKLjDQAAAACAQ3S8AQDIZCpWrChdu3bN6GYAAID/j443ACBi7NixQx555BGpWrWq5M2bV/LmzStXX3219O3bV3755ZeMbl5YLViwQJ5++ukMbUO2bNnkkUceydA2AACQFeTI6AYAACAi8umnn8o999wjOXLkkPvuu0+uvfZayZ49u/z666/ywQcfyMSJE2XHjh1SoUKFjG5qWCxYsEAmTJiQ4Z1vAADgHh1vAECG27Ztm3Ts2FEqVKggS5YskVKlSqn5Y8aMkddee02yZ4/cG7WSkpIkX758Gd0MAAAQgSL3GwwAIMsYO3asJCUlydSpU1N0ukVEcuTIIf3795dy5cqpf//111+lffv2UqRIEcmTJ4/ceOONMn/+fLXMtGnTJFu2bLJy5Up57LHHpHjx4pIvXz6588475dChQynea+HChXLrrbdKvnz5JC4uTlq3bi0bNmxQy3Tt2lXy588v27Ztk1atWklcXJzcd999IiKyYsUKufvuu6V8+fKSO3duKVeunAwcOFDOnDmjXj9hwgQR+d/t3n/995fk5GR56aWX5JprrpE8efJIiRIlpFevXnLs2DHVDo/HI6NGjZKyZctK3rx5pXHjxinaGoxly5ZJtmzZ5L333pMRI0ZImTJlJC4uTtq3by+JiYly7tw5GTBggMTHx0v+/PmlW7ducu7cObWOqVOnSpMmTSQ+Pl5y584tV199tUycODHFeyUnJ8vTTz8tpUuX9rZ948aNl6xPP378uAwYMEDKlSsnuXPnlipVqsiYMWMkOTlZLffuu+9K7dq1JS4uTgoUKCA1a9aUl19+Oc3bAwCAcOEXbwBAhvv000+lSpUqUqdOnVS/ZsOGDVK/fn0pU6aMPPHEE5IvXz557733pF27dvL+++/LnXfeqZbv16+fFC5cWJ566in5/fff5aWXXpJHHnlE5syZ411mxowZ0qVLF0lISJAxY8bI6dOnZeLEidKgQQNZvXq1VKxY0bvshQsXJCEhQRo0aCDPP/+85M2bV0RE5s6dK6dPn5bevXtL0aJF5fvvv5fx48fL7t27Ze7cuSIi0qtXL9m7d6988cUXMmPGjBR/W69evWTatGnSrVs36d+/v+zYsUNeffVVWb16taxcuVJy5swpIiLDhw+XUaNGSatWraRVq1by888/S/PmzeX8+fOp3o6XMnr0aImNjZUnnnhCtm7dKuPHj5ecOXNK9uzZ5dixY/L000/Ld999J9OmTZMrrrhChg8f7n3txIkT5ZprrpHbb79dcuTIIZ988on06dNHkpOTpW/fvt7lhgwZImPHjpW2bdtKQkKCrF27VhISEuTs2bOqLadPn5aGDRvKnj17pFevXlK+fHn59ttvZciQIbJv3z556aWXRETkiy++kE6dOknTpk1lzJgxIiKyadMmWblypTz66KMhbQ8AAELmAQAgAyUmJnpExNOuXbsU844dO+Y5dOiQ97/Tp0975zVt2tRTs2ZNz9mzZ73/lpyc7KlXr57nyiuv9P7b1KlTPSLiue222zzJycnefx84cKAnJibGc/z4cY/H4/GcPHnSU6hQIc9DDz2k2rB//35PwYIF1b936dLFIyKeJ554IkWbfdv4l9GjR3uyZcvm2blzp/ff+vbt67nUx/CKFSs8IuKZOXOm+vdFixapfz948KAnV65cntatW6u/a+jQoR4R8XTp0iXFui0R8fTt29ebly5d6hERT40aNTznz5/3/nunTp082bJl87Rs2VK9vm7dup4KFSoE/PsTEhI8lSpV8ub9+/d7cuTIkWKfP/300ynaPnLkSE++fPk8v/32m1r2iSee8MTExHh27drl8Xg8nkcffdRToEABz4ULFwL+3QAApDduNQcAZKgTJ06IiEj+/PlTzGvUqJEUL17c+99ft2cfPXpUvvrqK+nQoYOcPHlSDh8+LIcPH5YjR45IQkKCbNmyRfbs2aPW1bNnT3U796233ioXL16UnTt3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2GNqnn0Wgx1+9Pfff1f5l19+UTmSvj+kZh/xizcAAAAAAA7R8QYAAAAAwCE63gAAAAAAOBQV43gHW+tplx8yZIjKI0aM8E5fuHBBzevYsaPK27ZtUznUevNw1mhkxjFC7TicNtt6y06dOqncvHlzle2zCYIRFxensq07rFixoso9evRQmXEkNTvert13PXv2VLls2bIq2zqeBQsWqPzee+95pz/88EM1LykpKbjGGun1fIVI5nu9WblypZpn6+1sHa6tm+7SpYvK06dPVzk9a7YqVaqksq0rbdmypcp2HOnx48erbD8zkFJsbKzKd911l8p23Hd/dd32M/zzzz9X2T5/INC5mRk/V6PVuXPnVLa1oMF+NwykTp06KterV0/l5cuXe6ez4nFx0003qRyopjvQNvK9zu/bt0/NK126tMq23tleE+yzHN59912Vt27d6rctCI39rt2uXTuVhw0b5p2uVauWmhfoPD5z5ozKbdu2Vfmrr75SOdLPTX7xBgAAAADAITreAAAAAAA4RMcbAAAAAACHomIcbytQHXXt2rVVnjhx4mXn29pEO07hhg0b/L6Xy+0QzBjfl5LWOkmXYwf6juUnItKvXz+VbZ1O1apVVQ5lbOf169ereXYMylKlSqls61AtW8Nta5IOHjyY6naGKhLH8S5SpIjKv/76q8pFixZV2e7bQPvats0379+/X82zYy1/++23Kk+YMEHlvXv3qnz48GG/bUvP62EkjAl6zTXXqLx27Vq/72UtWbJE5XvvvVflQ4cOpbltwXrhhRdUttekQNvN1rs3atTosssGK7OM412uXDmVJ02apHJCQoLK/o6fTZs2qdy5c2eVV69erXI0PWsjEs7tSFKsWDGVbR2w/T4Rqrfeektl+9yWcG7XaNzXDRs2VHnQoEEq2/GVFy9erLKt2fcdW9t+P7N1wF9//bXKefPmVdk+68HWo69Zs0YySjTu60Ds85f++c9/qty7d+9UryvYvo4dk71u3boq//TTT6l+73BjHG8AAAAAADIYHW8AAAAAAByi4w0AAAAAgENRMY53oPv/7XjLtkbv6quvvuzrd+3apeZt2bIlqLa4FEo9s8t2hPI+dhzOO+64Q+Vq1aqled0iKWs/Xn75Ze+0rfXfvn27yr61mSKBa7ztdvE31my0COcxZJ8LEaimO1BbTp06pbKtGfd9HkDJ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y+fLl0/lzHBshPNvCHVdV111lcr9+vVTedeuXSrv27dP5Z9++sk7feONN6p5duixPn36qDx37lyVw12/7284scxwHGWEY8eOeadtbSdSHmeZ9ZkUtka4U6dOKtvzy173V6xYofKpU6fC2DpYdogw++yOqlWreqftMWxrui17jCclJakcFxensj026tWr5/f9zpw54/f9kXZZfZhNfvEGAAAAAMAhOt4AAAAAADhExxsAAAAAAIcolkIKkVRf8fjjj6tco0YNlV9//XWVR48erfLs2bO90//+97/VvI8//ljlYMf3RfQoUqSIyldccYXf5U+fPu2yOVEv1Nrl3r17qxwbG6vynXfeqfKOHTtU9t0/06dPV/NuueUWlZ955hmVmzRporId9/vLL79U2be+GBnj7Nmz3ulSpUqpeZH0eRUpMuuzBbp3765ywYIF/S5v64CPHz/udz5CY5+/YJ+jY5+t4q/WN1AdsK3Bttf1KlWqqDxz5kyV7Tjd9rku1HhrxYoVU7lly5Yq58+fX+XDhw+r7PuZbZ/LYuvrfb+3i4hs2rRJZXs9C5QjDb94AwAAAADgEB1vAAAAAAAcouMNAAAAAIBDWbLG23dswQYNGqh57du3V7lZs2YqFy9eXGVbe7h9+3aV9+zZo/KkSZNUDlS7kBEiqT4s0HvbmiJbQ1S6dGnv9NKlS9U8W+ODzKthw4Yq23qkP/74Q+VXX33VeZvSWzjP60Cvte9l63Lvvvtule14unbcblub6Wvx4sUqt27dWmXfsWJFRK688kqVu3TporId53vevHkqf/bZZyoH82yISLq2RhPfOnu7f32v8SIie/fuTZc2wT17vlx//fUq23G6rfPnz6s8btw4le35x/kZmnvvvVdle64GqtsOxpYtW1T+6aef/OYWLVqobK/79jNp4sSJoTYxqjVu3Fjld999V2XbFwpGoOPAPsvB9qPsd/nhw4erHOn1+fziDQAAAACAQ3S8AQAAAABwiI43AAAAAAAOpVuNt28t9bfffqvmBRpL0dbxFi1aVOVOnTqpXKlSJZXvuOMOlX3rBerWrev3vQO57rrrVLY1SJatIbfjCduapIwQSXVNdt9bPXr08Jt9jy1bw/Pzzz+r/Nprr132tYhud911l9/5ixYtUvnPP/902ZwMkZ7ntX0vew2Oj49X+ZVXXlH54MGDqV7/1KlT1bykpCSV77nnHpX379+v8saNG1V+8MEHVbbX7FtvvVVlW0vo27ZIupZGE1sDWLlyZe90kSJF1DxbDzhq1Ch3DUO6qlChgsr2+5Zlz7fvvvtO5V9//TWo18M/Ox7zhAkTVA5nTffy5ctV/uKLL/wub/fltGnTVLY13jVq1Eh74zKhZ555RmX7mR1IoOcn+LLftUuWLOk32+vADz/8oLJ9Tkukndf84g0AAAAAgEN0vAEAAAAAcIiONwAAAAAADjmr8bb38/vWZ9jaDN8xOkVEYmNjVb766qtVLlGihMpxcXFBtc237sfWANlaAzsenK0fPHnypMqDBg1SuWLFiirbMUfDWQOTGRUuXDio5e3+8x1jN1euXGqerSuNiYlR+eWXXw7qvRG58ubN63e+rRFiPNfQ2O3XpEkTle119Mknn1Q5lOcr2PquQPVedixge822z+2oU6eOyvZZEcHguLo0u118t3GbNm38LpsVZaZt4HvteOmll9Q831p/kZR/t+/nvYjI6NGjVbbXFa7zoRkyZIjK+fPnT/O67PONunbtqvL8+fNVts96CLTv1q9fr3JiYqLKV155pcq+nwtZ4Xk/tqa7Xr16Qb3ejqtun6ewatUq73SBAgXUvK+//lrloUOHqmyfq2K/q7/xxhsq2329adMmlTP6POcXbwAAAAAAHKLjDQAAAACAQ3S8AQAAAABwyFmNt72H3reetkOHDmqeHaPNClQHfe7cOZWXLVum8uzZs1V+5513vNMXL170u+5AbK1Bx44dVbb1gitWrFA5EscLjqS6p2HDhqk8ePBgle3+W7x4scqTJk3yTtsxJ23tpx3/1dao2HUjctl6fjtGpz1ubI1RRtcAZYRA19lgtkmgGu/cuXOrbJ+lEcx7B7pe2fk22/o9OxZtr169VG7atKnKr7/+eqrbmhWPq3D45JNPvNPDhw9X8yLxMxRpd99993mnW7RooeYFOpdtLedXX33l9704H4NTsGBBle13qlD89ttvKs+ZM0dlu6/Kli0b1PptTfe+fftUtn+bbw354cOHg3qvaGSfp2SffWLZ5+K0bdtW5QMHDqT6ve2zAQoVKpTq14qk3Hc1a9ZUeePGjUGtzzV+8QYAAAAAwCE63gAAAAAAOETHGwAAAAAAh5zVeFsDBgzwTtsxW6tUqaLybbfdpnKZMmVUtrW2GzZsUPmPP/5IazOD1q1bN5UbNGjgd3lbR5wVxgcMha299R0PXiS4Gi07ZrsdK3Dy5Mkq21pPW890/PjxVL93pMqsNW5/+9vfVLbjv+7cuVPl7du3O29TtPOtpwx03Nj6sBMnTlx2XSIpn5URzHUxUE13sMe4PTamTZumct++fVUuV66c39eHs21Z1e+//37ZeXb8X0Q333Ha7bM6LHv+vPnmmyrbYyPQcyzgX/fu3VUuX758SOvzHXfdjgke6DNg8+bNQb2XfRbEjz/+qPL999+vcv369b3TH3/8cVDvFY1Onz4d1PI7duxQ+dChQ6l+rf28f/7551W2NdrB8vd5EQn4xRsAAAAAAIfoeAMAAAAA4BAdbwAAAAAAHEq3Gm9fp06dUnnNmjV+cyRp3769yq+99prf5e3fYscYj0SRXHcYzrbNmDFD5QoVKqg8cuRIlR999FGVn3nmGWdtQ2huuukmlW1tn63Z8q01Q+jsON0lS5ZU2e4PO98+p8NfbaY970I9D+3rr7jiCr9tCabGmGtE2vgeT3Yb2jFcEV1q1Kihsu94wHZf22dHHDlyROWZM2eGuXVZW1xcnMpNmjQJ6vW2rto+F6dPnz7e6U8//TS4xoXo119/9Tv/6quv9k5nhRrvQON2WxUrVlQ50PMTfOd36tRJzXvwwQeDem/r6NGjKlPjDQAAAABAFkbHGwAAAAAAhzLkVvNoUrZsWZXt7cc5c+ZUedy4cSrbIRK4pTVyTZkyReV//OMfKg8ePFhlO8yQv2GEkL5uvvlmle0ti//973/TszlZjr3O2RwbG6vyuXPn/K4vPW/RzpMnj8q1atVS+eLFiyonJSU5b1NW53tror2lsVSpUundHIRR165dVc6bN693OlAZyfTp01U+duyYyplx+L70/BsefvhhlVu2bOl3ebv9H3jgAZXtEFQbN24MoXWhsUNcWrb0MLOx58bs2bNVHjRokN/X+96KL5LyOrx7926VfUu2Jk6cqOblyBFaV3Tt2rUqHzx4UOVIuw7wizcAAAAAAA7R8QYAAAAAwCE63gAAAAAAOESNdwD2sffVq1f3u/zhw4dVtrWNGV1bkBqRVg+RXvbv36/y22+/rXLfvn1VrlmzpsrRWOMdzfvatr1169be6ebNm6t5iYmJKn/44YfuGhal7L4P5diwQ3DZuumYmBiV77rrLpUnTZqU6veyQj2G7Xlevnx5lV988UWVT5486awt+J9KlSpddp4dsigrsudqcnJyBrUksAIFCqh85513XnZZ+3dt3rxZ5WHDhqls/+5AQxxBs9trwIABKgcacsoOCbZgwQKVI+l6eOjQIZXtsJA//PBDejYn3dl9YYfg2rt3r8qlS5dWOX/+/Crb78uvv/66yr7PSLKvDdV3330X1vW5xi/eAAAAAAA4RMcbAAAAAACH6HgDAAAAAOAQNd6GrT2w43Bbp06dUnnFihVhbxMyhq15yYz1YpFUcxWs3Llzq+w77qQdJ9rWGNt6pe3bt4e5dVnbgQMHVLbjbNauXVvlRo0aqfzGG2+o7O84DfUYtmPTPv300yrbutHFixeH9f2Rkr3W2mcC+LLjqkfzcyvSKpzPZ3CtY8eOKtvnQfi21e7bf/3rXyqfOXNG5Uj+u6NRyZIlVbbb1z5fwY4FHcnbv1y5cirbmuatW7emZ3MynB2D3fZ9pk+f7vf1jRs39ptdst83rEg7DvnFGwAAAAAAh+h4AwAAAADgEB1vAAAAAAAcSnWNd6TdIx8udlzCESNGqFy4cGGV7XjA9erVU3njxo1hbF3GyKz7Olg5c+b0O//48ePp0xCHorkmznfcbhGRhg0bXnbZCRMmqGzr95FSKMeCrRd7+eWXVbZjfrZv315lOwbo119/rXIo4xTnzZtX5X//+98q2+d8zJo1S+Wvvvoqze+N1LHH3o8//uid7tmzp5pXpkyZdGlTNImk67j9HG3RokWqX7to0SKV58+fH5Y2RTOXn9mBxoO335dPnjyp8jfffBO2toRbtWrVVLbPGjh9+rTKq1evdt6mSGKPI3uu/frrrypXr1493doS6PlKVatWddYWF/jFGwAAAAAAh+h4AwAAAADgEB1vAAAAAAAcSnWNdzTXgvpTs2ZNlR977DG/y9txujdt2hT2NiEy1KlTx+98W98UjaLpPC5YsKDKjz/++GWXXbNmjcqDBw9WOZQa4WgV7DXcX11VsMfN3LlzVe7QoYPKbdq0UfnFF19U+W9/+5vKJ06cSPV758ihP+bGjx+v8vXXX+/39bZu8cKFC6l+b4SHv/M1Pj5e5cz6XSUYGbkN7HtPmzZN5bZt2/p9ve/Y3c8//7yaZ8eNZl+Hl91+dnvba2mePHlUDvRcnPRkn+XxxhtvqGyv+/PmzVM5M3y/C4V9htEDDzyg8vLly1WOjY1N9brPnDmj8tSpU1WuXbu2yoG+i0fbsx/4xRsAAAAAAIfoeAMAAAAA4BAdbwAAAAAAHEp1jXdm1apVK7/zbc3Lk08+6Xd+ZpBV66ZiYmJUtnUlv/zyi8p2XMNoFE372tZ4161b97LLvvTSSyrbmiKkr7Nnz6o8YsQIlVu2bKnytddeq3LTpk1V/uijj7zT9pi143APHDhQ5S5duvht688//6zyu+++63d5K5LPoWiVlJTknbbb144tnBVF0nW8UaNGKrdv315l+zlr237o0CHvtP2MDTSeL0LTuXNnlXPnzq2yPa7+85//qHzs2DE3DUuDBx98UGX7nJBTp06pPHbsWJW5jms//fSTyvY8t+Oi2+9rhw8f9k7benvf67uIyJ49e/y2xT7zY+fOnSpH+r7jEwsAAAAAAIfoeAMAAAAA4BAdbwAAAAAAHMqSNd5VqlTxTg8fPtzvsp9//rnK69atc9KmSBLp9RHhYuvF3nnnHZVLlCih8pdffqmy73ij0Sqa9nX58uX9zt+8ebN3Oti6XKQvO876hg0bVK5Vq5bK1apVU7lw4cLe6VtvvVXNs2P/Vq5cWWV73tvz+LHHHlPZ1i1GUj1tVrFjxw7vtN3e9roQFxencmJioruGRYiMPAbt2M09evTwO9+ybZ8zZ453+uDBg0G9FqEpVKiQyvb5CfZa+dxzz/ldn8trpR1DvHfv3irbcadt2219uq1hhmb33ffff6/yDz/84Hd5f+rVqxfUa3/88UeVt2zZonKkf0bzizcAAAAAAA7R8QYAAAAAwCE63gAAAAAAOJQlarxz5NB/5syZM73Ttk5k9+7dKvfs2VNlO34cooetNevevbvKdhxC688//1T5woUL4WkYLqlAgQIqjx492u/y7733nnf63LlzTtqUmaXnGLm23u7tt99W2dZpjxo1SuWhQ4d6p/Ply6fmBRrXee/evSoPGjRI5eXLl6sc6fViWYHv2Op2jFdb433NNdeo/O2337prWIRKz2O0adOmKnfo0MFvW+z5dPbsWZXffPPNMLYOwQh03Nh9169fP5VnzZqlcmxsrN/1HT9+3Dt98uRJNa9Vq1YqN2zYUOXGjRurXKNGDZXPnz+vsv3+8NJLL6nMdT00oWw/uy9jYmL8Lv/111+rbPtlkb4v+cUbAAAAAACH6HgDAAAAAOAQHW8AAAAAABzKEjXe9913n8o333zzZZe14//u2rXLSZtwabaGyI7v51sTJJJyjN4GDRqo7FvXfeONN/pd1rJ1qOvXr/e7fDSK5PrVSpUqqWz314EDB1S247AjOIFqMYM5NgLVi9t1TZgwQWVbJ2qv2b5jNQdq1+zZs1UeO3asynZM8fSsdUfq+D5Po2/fvmrexx9/rHKJEiXSpU2RLD2v67am3tZnBrqu+D6bQ0Rk48aNl32vSPp8yoyWLVum8qlTp1TOnz+/ynYs7CeffFJlu7/sseH7/CVbp5s7d26V7bM77LrnzZunsq3pXrt2rd/XI+MUL148qOX37dvnqCXpg1+8AQAAAABwiI43AAAAAAAO0fEGAAAAAMChTFnjbcfze+qpp1L9Wt/xQpH+bK2HHWu7W7duKtu6oHXr1qlcrlw573TRokXVPDtmux3v9eWXX1b5u+++u1yz4cD27dtVtvVmU6dOVfm3335z3iakTrD1c3bc9eeee07lu+++W+WEhATvtK3t+/HHH1WePHmyyvaaEWw9ejA14OGsm8/KfOs7FyxYoObNnTtXZd+6UZGsuc3T82+01137bBRb13vo0CGVX3nlFZV9254V9lUksd+f7NjZAwcOVNl+177uuutUDuXaeebMGZXnzJmj8kcffaTyokWLVLafKYgc9nt+u3btgnp9sWLFVI626wS/eAMAAAAA4BAdbwAAAAAAHMrmSeVv9IEe5R9JPvnkE5XbtGlz2WXt0BV2yKJjx46Fr2HpLK37KJKH0wl0HEbycelSWv/uSD6vbdssf7cMR9LfEW5p/dsCDfMTym2BVri3vz0WfNtmjwPX0vP28VDWFcnndiiCLQ2IJpnhOh7oum2l9/kbKTLDvg7EnquhfKZE83GSFfZ1MAoXLqzy0aNH/S5vywyvv/56lbdu3RqehoVBavYRv3gDAAAAAOAQHW8AAAAAAByi4w0AAAAAgEOZcjix+fPnq9yqVSuVfesmBg8erOZFc013VhDNdT6RKJJrhoLd15H8t2Q2oW7rYOui7XzfYyPYukGG+Ipu7J/IYs+fQMP1sf+yDp7Bg0sJdM2wte3r169X2Q41G234xRsAAAAAAIfoeAMAAAAA4BAdbwAAAAAAHEp1jXc01WZMnjxZ5cOHD6t8/Phx7/SyZcvSoUUAkLGCvYa7vOa7bEt6/52R+tkYqe1C5hLs8xkQGrYnol1iYqLKI0aMULlo0aIqT506VeVof9YTv3gDAAAAAOAQHW8AAAAAAByi4w0AAAAAgEPZPKksGLHjqlFnEvnSuo/Y19GHfZ11pHUfxcTEhGU9WU04x/0OdfzyYHBuRx+u45HN9/wNdhsHGrs4retB5HP1mZ1Zz/NQPmMzWmrayi/eAAAAAAA4RMcbAAAAAACH6HgDAAAAAOBQqmu8AQAAAABA8PjFGwAAAAAAh+h4AwAAAADgEB1vAAAAAAAcouMNAAAAAIBDdLwBAAAAAHCIjjcAAAAAAA7R8QYAAAAAwCE63gAAAAAAOETHGwAAAAAAh/4fRgak+m75pGcAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1000x400 with 16 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Install 'cleanfid' for quantitative evaluation: pip install cleanfid\n"
     ]
    }
   ],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import torchvision\n",
    "from torch.utils.data import DataLoader\n",
    "from torchvision import transforms\n",
    "from diffusers import DDPMScheduler, UNet2DModel\n",
    "from matplotlib import pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "# 设置设备\n",
    "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
    "print(f\"Using device: {device}\")\n",
    "\n",
    "# 1. 数据准备\n",
    "transform = transforms.Compose([\n",
    "    transforms.ToTensor(),              # 转换为张量\n",
    "    transforms.Normalize((0.5,), (0.5,)) # 归一化到[-1, 1]\n",
    "])\n",
    "\n",
    "train_dataset = torchvision.datasets.MNIST(\n",
    "    root='./data',\n",
    "    train=True,\n",
    "    download=True,\n",
    "    transform=transform\n",
    ")\n",
    "\n",
    "test_dataset = torchvision.datasets.MNIST(\n",
    "    root='./data',\n",
    "    train=False,\n",
    "    download=True,\n",
    "    transform=transform\n",
    ")\n",
    "\n",
    "train_loader = DataLoader(train_dataset, batch_size=128, shuffle=True, num_workers=2)\n",
    "test_loader = DataLoader(test_dataset, batch_size=16, shuffle=False)\n",
    "\n",
    "# 2. 模型定义\n",
    "model = UNet2DModel(\n",
    "    sample_size=28,            # 图像大小\n",
    "    in_channels=1,             # 输入通道 (灰度图)\n",
    "    out_channels=1,             # 输出通道\n",
    "    layers_per_block=2,         # 每个残差块的层数\n",
    "    block_out_channels=(32, 64, 128),  # 各层的通道数\n",
    "    down_block_types=(\n",
    "        \"DownBlock2D\",         # 常规下采样块\n",
    "        \"AttnDownBlock2D\",     # 带注意力机制的下采样块\n",
    "        \"AttnDownBlock2D\",\n",
    "    ),\n",
    "    up_block_types=(\n",
    "        \"AttnUpBlock2D\",       # 带注意力机制的上采样块\n",
    "        \"AttnUpBlock2D\",\n",
    "        \"UpBlock2D\",           # 常规上采样块\n",
    "    ),\n",
    ").to(device)\n",
    "\n",
    "# 3. 噪声调度器\n",
    "noise_scheduler = DDPMScheduler(\n",
    "    num_train_timesteps=1000,   # 扩散步数\n",
    "    beta_schedule=\"linear\",      # 噪声调度方式\n",
    ")\n",
    "\n",
    "# 4. 训练参数\n",
    "optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)\n",
    "epochs = 20\n",
    "loss_fn = nn.MSELoss()\n",
    "\n",
    "# 5. 训练循环\n",
    "model.train()\n",
    "for epoch in range(epochs):\n",
    "    total_loss = 0.0\n",
    "    for images, _ in train_loader:\n",
    "        images = images.to(device)\n",
    "        \n",
    "        # 生成随机噪声和时间步\n",
    "        noise = torch.randn_like(images)\n",
    "        timesteps = torch.randint(\n",
    "            0, noise_scheduler.config.num_train_timesteps, \n",
    "            (images.shape[0],), device=device\n",
    "        ).long()\n",
    "        \n",
    "        # 添加噪声\n",
    "        noisy_images = noise_scheduler.add_noise(images, noise, timesteps)\n",
    "        \n",
    "        # 模型预测噪声\n",
    "        noise_pred = model(noisy_images, timesteps).sample\n",
    "        \n",
    "        # 计算损失\n",
    "        loss = loss_fn(noise_pred, noise)\n",
    "        \n",
    "        # 反向传播\n",
    "        optimizer.zero_grad()\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "        \n",
    "        total_loss += loss.item()\n",
    "    \n",
    "    avg_loss = total_loss / len(train_loader)\n",
    "    print(f\"Epoch {epoch+1}/{epochs}, Loss: {avg_loss:.4f}\")\n",
    "\n",
    "# 6. 验证效果 - 图像生成\n",
    "model.eval()\n",
    "\n",
    "# 生成随机噪声作为起点\n",
    "sample = torch.randn(16, 1, 28, 28).to(device)\n",
    "\n",
    "# 设置采样器\n",
    "noise_scheduler.set_timesteps(num_inference_steps=50)\n",
    "\n",
    "# 逐步去噪\n",
    "for t in noise_scheduler.timesteps:\n",
    "    with torch.no_grad():\n",
    "        residual = model(sample, t).sample\n",
    "        sample = noise_scheduler.step(residual, t, sample).prev_sample\n",
    "\n",
    "# 7. 可视化结果\n",
    "def plot_images(images, title):\n",
    "    plt.figure(figsize=(10, 4))\n",
    "    for i in range(min(16, len(images))):\n",
    "        plt.subplot(2, 8, i+1)\n",
    "        image = images[i].squeeze().cpu().numpy()\n",
    "        plt.imshow(image, cmap='gray')\n",
    "        plt.axis('off')\n",
    "    plt.suptitle(title)\n",
    "    plt.tight_layout()\n",
    "    plt.show()\n",
    "\n",
    "# 可视化原始测试图像\n",
    "test_images, _ = next(iter(test_loader))\n",
    "plot_images(test_images, \"Original Test Images\")\n",
    "\n",
    "# 可视化生成的图像\n",
    "generated_images = sample.clamp(-1, 1)  # 裁剪到[-1, 1]\n",
    "plot_images(generated_images, \"Generated Images\")\n",
    "\n",
    "# 8. 评估生成质量（FID分数 - 需要额外安装）\n",
    "try:\n",
    "    from cleanfid import fid\n",
    "    import os\n",
    "    from torchvision.utils import save_image\n",
    "    \n",
    "    # 创建临时文件夹保存图像\n",
    "    os.makedirs(\"real_images\", exist_ok=True)\n",
    "    os.makedirs(\"fake_images\", exist_ok=True)\n",
    "    \n",
    "    # 保存真实图像\n",
    "    for i, (img, _) in enumerate(test_loader):\n",
    "        for j in range(img.size(0)):\n",
    "            save_image(img[j], f\"real_images/{i*img.size(0)+j}.png\")\n",
    "        if i >= 9:  # 只取100张\n",
    "            break\n",
    "    \n",
    "    # 生成并保存假图像\n",
    "    with torch.no_grad():\n",
    "        for i in range(10):\n",
    "            sample = torch.randn(10, 1, 28, 28).to(device)\n",
    "            for t in noise_scheduler.timesteps:\n",
    "                residual = model(sample, t).sample\n",
    "                sample = noise_scheduler.step(residual, t, sample).prev_sample\n",
    "            \n",
    "            sample = sample.clamp(-1, 1)\n",
    "            for j in range(sample.size(0)):\n",
    "                save_image(sample[j], f\"fake_images/{i*sample.size(0)+j}.png\")\n",
    "    \n",
    "    # 计算FID分数\n",
    "    fid_score = fid.compute_fid(\"real_images\", \"fake_images\", device=device)\n",
    "    print(f\"FID Score: {fid_score:.2f}\")\n",
    "    \n",
    "except ImportError:\n",
    "    print(\"Install 'cleanfid' for quantitative evaluation: pip install cleanfid\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "71013aef-cfce-4588-b2b9-0cce440489b2",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/20, Loss: 0.0941\n",
      "Epoch 2/20, Loss: 0.0646\n",
      "Epoch 3/20, Loss: 0.0608\n",
      "Epoch 4/20, Loss: 0.0592\n",
      "Epoch 5/20, Loss: 0.0577\n",
      "Epoch 6/20, Loss: 0.0571\n",
      "Epoch 7/20, Loss: 0.0565\n",
      "Epoch 8/20, Loss: 0.0556\n",
      "Epoch 9/20, Loss: 0.0550\n",
      "Epoch 10/20, Loss: 0.0548\n",
      "Epoch 11/20, Loss: 0.0539\n",
      "Epoch 12/20, Loss: 0.0542\n",
      "Epoch 13/20, Loss: 0.0537\n",
      "Epoch 14/20, Loss: 0.0536\n",
      "Epoch 15/20, Loss: 0.0536\n",
      "Epoch 16/20, Loss: 0.0533\n",
      "Epoch 17/20, Loss: 0.0530\n",
      "Epoch 18/20, Loss: 0.0528\n",
      "Epoch 19/20, Loss: 0.0528\n",
      "Epoch 20/20, Loss: 0.0525\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA94AAAFkCAYAAADWo+MRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9vklEQVR4nO3dd3RUZff//R0C0muIFJUuqFQBAUFQlK/0CAKCdEGKDRsoIErHQlFuFBFvBERElKJIE0GKiFioCihSooJKL9KkZJ4/7sf5zd6QyUwy16TM+7WWa51PzplzruQwZXtmnyvK4/F4BAAAAAAAOJEptQcAAAAAAEBGRuENAAAAAIBDFN4AAAAAADhE4Q0AAAAAgEMU3gAAAAAAOEThDQAAAACAQxTeAAAAAAA4ROENAAAAAIBDFN4AAAAAADhE4Q0ASHeGDBkiUVFRyXrstGnTJCoqSuLj40M7KB/x8fESFRUl06ZNc3YMAACQflB4AwDCZtu2bdKxY0e55pprJGvWrFK0aFHp0KGDbNu2LbWHFnYlSpSQqKioJP8LVfE+atQo+fjjjwPa9t//cTBmzJiQHBsAgEiXObUHAACIDPPmzZP7779fChQoIN27d5eSJUtKfHy8TJkyRebMmSMffPCBtGzZMqB9DRo0SPr375+scXTq1EnatWsnWbNmTdbjQ+W1116TU6dOefPixYtl1qxZ8uqrr0rBggW9P69du3ZIjjdq1Chp3bq1tGjRIiT7AwAAgaPwBgA4t3v3bunUqZOUKlVK1qxZI7Gxsd51jz/+uNStW1c6deokW7dulVKlSiW6n9OnT0vOnDklc+bMkjlz8t7CoqOjJTo6OlmPDSVbAP/1118ya9YsadGihZQoUSJVxgQAANzgq+YAAOdGjx4tZ86ckcmTJ6uiW0SkYMGC8tZbb8np06fllVde8f783z7u7du3S/v27SV//vxy2223qXW+zp49K3369JGCBQtK7ty5JS4uTvbv3y9RUVEyZMgQ73ZX6vEuUaKENGvWTNauXSs1atSQbNmySalSpeTdd99Vxzh69Kj07dtXKlasKLly5ZI8efJI48aNZcuWLSH6S13uvffek2rVqkn27NmlQIEC0q5dO/n999/VNr/88ou0atVKChcuLNmyZZNrr71W2rVrJydOnBARkaioKDl9+rRMnz7d+xX2rl27BjWOf/9ua9eulT59+khsbKzky5dPevXqJefPn5fjx49L586dJX/+/JI/f3555plnxOPxqH2MGTNGateuLTExMZI9e3apVq2azJkz57JjBXouRUT2798v3bp1k0KFCknWrFmlfPny8s4771y2zwkTJkj58uUlR44ckj9/fqlevbq8//77Qf0NAABILq54AwCc+/TTT6VEiRJSt27dK66vV6+elChRQhYtWnTZujZt2sj1118vo0aNuqyQ89W1a1f58MMPpVOnTlKrVi1ZvXq1NG3aNOAx7tq1S1q3bi3du3eXLl26yDvvvCNdu3aVatWqSfny5UVEZM+ePfLxxx9LmzZtpGTJknLgwAF566235Pbbb5ft27dL0aJFAz5eIEaOHCnPP/+83HffffLggw/KoUOHZMKECVKvXj3ZtGmT5MuXT86fPy8NGzaUf/75Rx577DEpXLiw7N+/XxYuXCjHjx+XvHnzyowZM+TBBx+UGjVqSM+ePUVEpHTp0ska07/HGDp0qKxfv14mT54s+fLlk3Xr1kmxYsVk1KhRsnjxYhk9erRUqFBBOnfu7H3s+PHjJS4uTjp06CDnz5+XDz74QNq0aSMLFy5U5yrQc3ngwAGpVauWREVFyaOPPiqxsbGyZMkS6d69u5w8eVKeeOIJERF5++23pU+fPtK6dWt5/PHH5dy5c7J161b55ptvpH379sn6OwAAEBQPAAAOHT9+3CMinnvuucfvdnFxcR4R8Zw8edLj8Xg8gwcP9oiI5/77779s23/X/WvDhg0eEfE88cQTaruuXbt6RMQzePBg78+mTp3qERHP3r17vT8rXry4R0Q8a9as8f7s4MGDnqxZs3qefvpp78/OnTvnuXTpkjrG3r17PVmzZvUMGzZM/UxEPFOnTvX7O/saPXq0Gld8fLwnOjraM3LkSLXdDz/84MmcObP355s2bfKIiOejjz7yu/+cOXN6unTpEtBY/h3/6NGjvT/79+/WsGFDT0JCgvfnt956qycqKsrTu3dv788uXrzoufbaaz2333672u+ZM2dUPn/+vKdChQqeO++80/uzYM5l9+7dPUWKFPEcPnxYbduuXTtP3rx5vce75557POXLlw/odwcAwAW+ag4AcOrvv/8WEZHcuXP73e7f9SdPnlQ/7927d5LHWLp0qYiIPPzww+rnjz32WMDjvOmmm9QV+djYWClXrpzs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",
      "text/plain": [
       "<Figure size 1000x400 with 16 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA94AAAFkCAYAAADWo+MRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAACYKUlEQVR4nO39d9QVRdaHDZc56zgjGAEFVBARFZQZc0Ax55wwY05jzjlgznHMGXPOERMGREfGERGzjjqjjqOT1PP98byer/Z1oOtwvM/js973utZyrd50n+7qql27qr3rV3uyWq1WSyIiIiIiIiLSFib/pQsgIiIiIiIi8v9m/PAWERERERERaSN+eIuIiIiIiIi0ET+8RURERERERNqIH94iIiIiIiIibcQPbxEREREREZE24oe3iIiIiIiISBvxw1tERERERESkjfjhLSIiIiIiItJG/PAWERH5fxnzzjtv2nbbbX/pYoiIiMj/gx/eIiLyf4bx48enPfbYIy2wwAJp+umnT9NPP31aaKGF0u67755ee+21X7p4Hcp9992Xjj766F+0DJNNNlnaY489ftEyiIiI/H+BKX/pAoiIiKSU0j333JM23XTTNOWUU6Ytt9wy9evXL00++eTpzTffTLfddlu68MIL0/jx41O3bt1+6aJ2CPfdd186//zzf/GPbxEREWk/fniLiMgvzrhx49Jmm22WunXrlh599NE055xzhvOnnHJKuuCCC9Lkk//fXaj17bffphlmmOGXLoaIiIj8H+T/7gxGRET+P8OwYcPSt99+m6644oqGj+6UUppyyinTXnvtlbp06RL+/c0330wbbbRR+vWvf52mnXbaNGDAgHTXXXeFa6688so02WSTpWeeeSbtt99+qVOnTmmGGWZI66+/fvr8888bnnX//fenZZddNs0wwwxppplmSmuuuWZ64403wjXbbrttmnHGGdO4cePSGmuskWaaaaa05ZZbppRSevrpp9PGG2+cunbtmqaZZprUpUuXtO+++6Z//vOf4ffnn39+Sul/lnv/9N9P/Pjjj+mss85Kffr0SdNOO22affbZ09ChQ9OXX34ZylGr1dLxxx+f5plnnjT99NOnFVdcsaGsk8ITTzyRJptssnTzzTenY445Js0999xppplmShtttFH6+uuv07///e+0zz77pM6dO6cZZ5wxbbfddunf//53uMcVV1yRVlpppdS5c+c0zTTTpIUWWihdeOGFDc/68ccf09FHH53mmmuuetnHjBkzQX36V199lfbZZ5/UpUuXNM0006SePXumU045Jf3444/huhtvvDH1798/zTTTTGnmmWdOffv2TWeffXbL9SEiItJR+BdvERH5xbnnnntSz54908CBA5v+zRtvvJGWXnrpNPfcc6eDDz44zTDDDOnmm29O6623Xrr11lvT+uuvH67fc88906yzzpqOOuqo9O6776azzjor7bHHHummm26qX3PNNdekIUOGpMGDB6dTTjklfffdd+nCCy9MyyyzTBo1alSad95569d+//33afDgwWmZZZZJp512Wpp++ulTSikNHz48fffdd2nXXXdNv/nNb9LIkSPTueeemz788MM0fPjwlFJKQ4cOTR9//HF6+OGH0zXXXNPwbkOHDk1XXnll2m677dJee+2Vxo8fn84777w0atSo9Mwzz6SpppoqpZTSkUcemY4//vi0xhprpDXWWCO98soradVVV03/+c9/mq7HCXHSSSel6aabLh188MHp7bffTueee26aaqqp0uSTT56+/PLLdPTRR6fnn38+XXnllWm++eZLRx55ZP23F154YerTp09aZ5110pRTTpnuvvvutNtuu6Uff/wx7b777vXrDjnkkDRs2LC09tprp8GDB6fRo0enwYMHp3/961+hLN99911afvnl00cffZSGDh2aunbtmp599tl0yCGHpE8++SSdddZZKaWUHn744bT55punlVdeOZ1yyikppZT+9Kc/pWeeeSbtvffeP6s+REREfjY1ERGRX5Cvv/66llKqrbfeeg3nvvzyy9rnn39e/++7776rn1t55ZVrffv2rf3rX/+q/9uPP/5YW2qppWrzzz9//d+uuOKKWkqpNmjQoNqPP/5Y//d99923NsUUU9S++uqrWq1Wq33zzTe1X/3qV7WddtoplOHTTz+tzTLLLOHfhwwZUksp1Q4++OCGMudl/ImTTjqpNtlkk9Xee++9+r/tvvvutQkNw08//XQtpVS77rrrwr8/8MAD4d8/++yz2tRTT11bc801w3sdeuihtZRSbciQIQ33Jiml2u677163H3/88VpKqbbwwgvX/vOf/9T/ffPNN69NNtlktdVXXz38/ne/+12tW7duxfcfPHhwrXv37nX7008/rU055ZQNbX700Uc3lP24446rzTDDDLW33norXHvwwQfXpphiitr7779fq9Vqtb333rs288wz177//vvie4uIiPxv41JzERH5Rfn73/+eUkppxhlnbDi3wgorpE6dOtX/+2l59t/+9rf02GOPpU022SR988036YsvvkhffPFF+utf/5oGDx6cxo4dmz766KNwr5133jks51522WXTDz/8kN57772U0v/8xfSrr75Km2++ef1+X3zxRZpiiinSwIED0+OPP95Qvl133bXh36abbrr68bfffpu++OKLtNRSS6VarZZGjRpVrI/hw4enWWaZJa2yyiqhHP37908zzjhjvRyPPPJI+s9//pP23HPP8F777LNP8Rklttlmm/pf1VNKaeDAgalWq6Xtt98+XDdw4MD0wQcfpO+//77+b/n7f/311+mLL75Iyy+/fHrnnXfS119/nVJK6dFHH03ff/992m233cL99txzz4ayDB8+PC277LJp1llnDfUxaNCg9MMPP6SnnnoqpZTSr371q/Ttt9+mhx9++Ge/v4iISEfjUnMREflFmWmmmVJKKf3jH/9oOHfxxRenb775Jv3lL39JW221Vf3f33777VSr1dIRRxyRjjjiiAne97PPPktzzz133e7atWs4P+uss6aUUl03PXbs2JRSSiuttNIE7zfzzDMHe8opp0zzzDNPw3Xvv/9+OvLII9Ndd93VoMn+6cOzirFjx6avv/46de7ceYLnP/vss5RSqv8Pg/nnnz+c79SpU/3dWoV1Ncsss6SUUoPGfpZZZkk//vhj+vrrr9NvfvOblFJKzzzzTDrqqKPSc889l7777rtw/ddff51mmWWWetl79uwZzv/6179uKPvYsWPTa6+9ljp16jTBsv5UH7vttlu6+eab0+qrr57mnnvutOqqq6ZNNtkkrbbaapPy6iIiIm3BD28REflFmWWWWdKcc86Z/vjHPzac+0nz/e6774Z//2lTrf333z8NHjx4gvflR90UU0wxwetqtVq45zXXXJPmmGOOhuumnDIOmdNMM03DLus//PBDWmWVVdLf/va3dNBBB6VevXqlGWaYIX300Udp2223bdgMbEL8+OOPqXPnzum6666b4PmJfYB2JBOrq1Idjhs3Lq288sqpV69e6YwzzkhdunRJU089dbrvvvvSmWee2dT7kx9//DGtssoq6cADD5zg+QUWWCCllFLnzp3Tq6++mh588MF0//33p/vvvz9dccUVaZtttklXXXXVJD9XRESkI/HDW0REfnHWXHPNdNlll6WRI0emJZdcsnh99+7dU0opTTXVVGnQoEEdUoYePXqklP7nA67Ve77++uvprbfeSldddVXaZptt6v8+oeXP+fJwluORRx5JSy+9dFi2TX7KZz527Nh6faSU0ueff97wl/b/Le6+++7073//O911113hr+Zcpv9T2d9+++0033zz1f/9r3/9a0PZe/Tokf7xj3801SZTTz11WnvttdPaa6+dfvzxx7Tbbruliy++OB1xxBEN/yNGRETkfxM13iIi8otz4IEHpumnnz5tv/326S9/+UvD+Z/+ovoTnTt3TiussEK6+OKL0yeffNJw/YTShJUYPHhwmnnmmdOJJ56Y/vvf/7Z0z5/+IpyXt1arTTCl1U85v7/66qvw75tsskn64Ycf0nHHHdfwm++//75+/aBBg9JUU02Vzj333PC8n3b5/iWY0Pt//fXX6YorrgjXrbzyymnKKadsSDN23nnnNdxzk002Sc8991x68MEHG8599dVXdX35X//613Bu8sknT4ssskhKKTWkPBMREfnfxr94i4jIL87888+frr/++rT55punBRdcMG255ZapX79+qVarpfHjx6frr78+TT755EFTff7556dlllkm9e3bN+20006pe/fu6S9/+Ut67rnn0ocffphGjx49SWWYeeaZ04UXXpi23nrrtPjii6fNNtssderUKb3//vvp3nvvTUsvvfQEPwxzevXqlXr06JH233//9NFHH6WZZ5453XrrrRP8C3T//v1TSinttddeafDgwWmKKaZIm222WVp++eXT0KFD00knnZReffXVtOqqq6apppoqjR07Ng0fPjydffbZaaONNkqdOnVK+++/fzrppJPSWmutldZYY400atSodP/996fZZpttkt69o1h11VXrf3UeOnRo+sc//pEuvfTS1Llz5/A/SGafffa09957p9NPPz2ts846abXVVkujR4+ulz1fDXDAAQeku+66K6211lpp2223Tf3790/ffvttev3119Mtt9yS3n333TTbbLOlHXfcMf3tb39LK620UppnnnnSe++9l84999y06KKLpt69e/8S1SEiIvL/5xfaTV1ERKSBt99+u7brrrvWevbsWZt22mlr0003Xa1Xr161XXbZpfbqq682XD9u3LjaNttsU5tjjjlqU001VW3uueeurbXWWrVbbrmlfs1P6cRefPHF8NufUmc9/vjjDf8+ePDg2iyzzFKbdtppaz169Khtu+22tZdeeql+zZAhQ2ozzDDDBN9hzJgxtUGDBtVmnHHG2myzzVbbaaedaqNHj66llGpXXHFF/brvv/++tueee9Y6depUm2yyyRpSi11yySW1/v3716abbrraTDPNVOvbt2/twAMPrH388cf1a3744YfaMcccU5tzzjlr0003XW2FFVao/fGPf6x169btZ6UTGz58eLhuYnV41FFH1VJKtc8//7z+b3fddVdtkUUWqU077bS1eeedt3bKKafULr/88lpKqTZ+/Pjw/kcccURtjjnmqE033XS1lVZaqfanP/2p9pvf/Ka2yy67hOd88803tUMOOaTWs2fP2tRTT12bbbbZaksttVTttNNOq6c9u+WWW2qrrrpqrXPnzrWpp5661rVr19rQoUNrn3zySbEeRERE2s1ktRrW74mIiIj8Anz11Vdp1llnTccff3w67LDDfuniiIiIdBhqvEVEROR/nX/+858N//aTPn2FFVb43y2MiIhIm1HjLSIiIv/r3HTTTenKK69Ma6yxRppxxhnTiBEj0g033JBWXXXVtPTSS//SxRMREelQ/PAWERGR/3UWWWSRNOWUU6Zhw4alv//97/UN144//vhfumgiIiIdjhpvERERERERkTaixltERERERESkjfjhLSIiIiIiItJG/PAWERERERERaSN+eIuIiIiIiIi0ET+8RURERERERNqIH94iIiIiIiIibcQPbxEREREREZE24oe3iIiIiIiISBvxw1tERERERESkjfjhLSIiIiIiItJG/PAWERERERERaSN+eIuIiIiIiIi0ET+8RURERERERNqIH94iIiIiIiIibcQPbxEREREREZE24oe3iIiIiIiISBvxw1tERERERESkjfjhLSIiIiIiItJG/PAWERERERERaSN+eIuIiIiIiIi0ET+8RURERERERNqIH94iIiIiIiIibcQPbxEREREREZE24oe3iIiIiIiISBvxw1tERERERESkjfjhLSIiIiIiItJG/PAWERERERERaSN+eIuIiIiIiIi0ET+8RURERERERNqIH94iIiIiIiIibcQPbxEREREREZE24oe3iIiIiIiISBvxw1tERERERESkjfjhLSIiIiIiItJG/PAWERERERERaSN+eIuIiIiIiIi0ET+8RURERERERNqIH94iIiIiIiIibcQPbxEREREREZE24oe3iIiIiIiISBvxw1tERERERESkjfjhLSIiIiIiItJG/PAWERERERERaSN+eIuIiIiIiIi0ET+8RURERERERNqIH94iIiIiIiIibcQPbxEREREREZE24oe3iIiIiIiISBvxw1tERERERESkjfjhLSIiIiIiItJG/PAWERERERERaSN+eIuIiIiIiIi0ET+8RURERERERNqIH94iIiIiIiIibcQPbxEREREREZE24oe3iIiIiIiISBvxw1tERERERESkjfjhLSIiIiIiItJG/PAWERERERERaSN+eIuIiIiIiIi0ET+8RURERERERNqIH94iIiIiIiIibWTKZi/8zW9+E+zpppsu2H/961+DPeOMMwb7xx9/rB//61//CudmmWWWiV6bUkpTTDFFsH/44YdgTz55/P8HU001VbC//fbbYE899dQTvTef/eWXXwZ79tlnD/Y///nPYE822WTB/vvf/x5s1kutVgt2Xp4pp4zNw3qbbbbZgv23v/0t2H/5y19SK/AdO3XqFOyPPvqosly5r0wzzTThHNuO9cV35jv9+te/DvZ3330X7LxtU0rp888/n+izZphhhmCfdtppwZ555pmDff311wd7xIgRqQr64b///e+JPv+bb74J5+iHLOtXX30VbPpps/Tq1SvY//jHPyqvZ3/5z3/+Uz/m+00//fTB/uyzz4I933zzBZttzbjw3//+N9j0hY8//rh+zPpj/dJP2C95nr+nn+b1MKGy577HmMA+wpjCfj527NjUCl26dAn2119/HWzWb1V/4bmDDz442DPNNFOwr7zyymC/8847waZvsKybbLJJsJdeeun68UEHHRTOMR6xb7Bf0+d5nn7Jd2MM//777+vH9CPWMduaz2asnRTYP0rj6rTTTjvRe3EM/dWvfhVsvgdjAX2c9cDzrNP8fhzv2d5nnXVWsOeff/5g33///cF+4IEHgj1+/PjKsrCe8jjP8Y0xkOPVrLPOGuw333wztQL9JvfBlBrLzOvzcZLjFn2YfsP657M5V+T9OHdk2XIYd1ifrH+WZa655go2+1e3bt2CzdiRx26+B/sEycenlBr7Y7PMMccc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bbcFmzGI+y/kZSvNUzkGdRRsS7YPfZBjU54rnv7J9+WzGENKOd05tvH+eZ2VYjDvxX7OflyaS5Z8JT9Pv2D8YoxoZb8l/+ItIiIiIiIi0kb88BYRERERERFpI354i4iIiIiIiLSRyWolUaeIiIiIiIiItIx/8RYRERERERFpI354i4iIiIiIiLQRP7xFRERERERE2ogf3iIiIiIiIiJtxA9vERERERERkTbih7eIiIiIiIhIG/HDW0RERERERKSN+OEtIiIiIiIi0kb88BYRERERERFpI354i4iIiIiIiLQRP7xFRERERERE2ogf3iIiIiIiIiJtxA9vERERERERkTbih7eIiIiIiIhIG/HDW0RERERERKSN+OEtIiIiIiIi0kb88BYRERERERFpI354i4iIiIiIiLQRP7xFRERERERE2ogf3iIiIiIiIiJtxA9vERERERERkTbih7eIiIiIiIhIG/HDW0RERERERKSN+OEtIiIiIiIi0kb88BYRERERERFpI354i4iIiIiIiLQRP7xFRERERERE2ogf3iIiIiIiIiJtxA9vERERERERkTbih7eIiIiIiIhIG/HDW0RERERERKSN+OEtIiIiIiIi0kb88BYRERERERFpI354i4iIiIiIiLQRP7xFRERERERE2ogf3iIiIiIiIiJtxA9vERERERERkTbih7eIiIiIiIhIG5my2QunmGKKYM8888zB/vHHHyvt//znPxO99zTTTBPsf//738H+4Ycfgj311FMHe6qppgr2ZJNNVvnsaaeddqLneK///ve/wf7nP/8ZbNYDyzrllLGK+W7TTz99sL/99tv6MeuwVE+sl7///e+pFfr06VP5nM8//zzYs8wyS7C/+eabiZaJ9cN3yt8/pZRmnXXWYH/99dfBLvlh/jz6xeSTx//vxPfkvdhWJZ9n2//tb38L9jzzzFM//te//hXO/eMf/wg2641+mdf5pNCrV69gf/rpp8Fmv+c71Wq1+jHrh32Fdt4PU2psj+mmm67pZ/P+rA+2DZ/F9/zVr34VbN6P9d+pU6eJloXX87eMOTPMMEOw//KXvwT7u+++S63QuXPnYNOnWCfff//9RK9nmfm+7Gu//vWvg824y2fT/9n2ue/wWt77N7/5TbD53mxb+iXrm+9Ov89jFOMb/ZB1zGd/+eWXqVV69+4d7FLMqBr7WE72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",
      "text/plain": [
       "<Figure size 1000x400 with 16 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 2. 模型定义\n",
    "model1 = UNet2DModel(\n",
    "    sample_size=28,            # 图像大小\n",
    "    in_channels=1,             # 输入通道 (灰度图)\n",
    "    out_channels=1,             # 输出通道\n",
    "    layers_per_block=4,         # 每个残差块的层数\n",
    "    block_out_channels=(32, 64, 256),  # 各层的通道数\n",
    "    down_block_types=(\n",
    "        \"DownBlock2D\",         # 常规下采样块\n",
    "        \"AttnDownBlock2D\",     # 带注意力机制的下采样块\n",
    "        \"AttnDownBlock2D\",\n",
    "    ),\n",
    "    up_block_types=(\n",
    "        \"AttnUpBlock2D\",       # 带注意力机制的上采样块\n",
    "        \"AttnUpBlock2D\",\n",
    "        \"UpBlock2D\",           # 常规上采样块\n",
    "    ),\n",
    ").to(device)\n",
    "\n",
    "# 3. 噪声调度器\n",
    "noise_scheduler = DDPMScheduler(\n",
    "    num_train_timesteps=100,   # 扩散步数\n",
    "    beta_schedule=\"linear\",      # 噪声调度方式\n",
    ")\n",
    "\n",
    "# 4. 训练参数\n",
    "optimizer = torch.optim.Adam(model1.parameters(), lr=1e-3)\n",
    "epochs = 20\n",
    "loss_fn = nn.MSELoss()\n",
    "\n",
    "# 5. 训练循环\n",
    "model1.train()\n",
    "for epoch in range(epochs):\n",
    "    total_loss = 0.0\n",
    "    for images, _ in train_loader:\n",
    "        images = images.to(device)\n",
    "        \n",
    "        # 生成随机噪声和时间步\n",
    "        noise = torch.randn_like(images)\n",
    "        timesteps = torch.randint(\n",
    "            0, noise_scheduler.config.num_train_timesteps, \n",
    "            (images.shape[0],), device=device\n",
    "        ).long()\n",
    "        \n",
    "        # 添加噪声\n",
    "        noisy_images = noise_scheduler.add_noise(images, noise, timesteps)\n",
    "        \n",
    "        # 模型预测噪声\n",
    "        noise_pred = model1(noisy_images, timesteps).sample\n",
    "        \n",
    "        # 计算损失\n",
    "        loss = loss_fn(noise_pred, noise)\n",
    "        \n",
    "        # 反向传播\n",
    "        optimizer.zero_grad()\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "        \n",
    "        total_loss += loss.item()\n",
    "    \n",
    "    avg_loss = total_loss / len(train_loader)\n",
    "    print(f\"Epoch {epoch+1}/{epochs}, Loss: {avg_loss:.4f}\")\n",
    "\n",
    "# 6. 验证效果 - 图像生成\n",
    "model1.eval()\n",
    "\n",
    "# 生成随机噪声作为起点\n",
    "sample = torch.randn(16, 1, 28, 28).to(device)\n",
    "\n",
    "# 设置采样器\n",
    "noise_scheduler.set_timesteps(num_inference_steps=50)\n",
    "\n",
    "# 逐步去噪\n",
    "for t in noise_scheduler.timesteps:\n",
    "    with torch.no_grad():\n",
    "        residual = model1(sample, t).sample\n",
    "        sample = noise_scheduler.step(residual, t, sample).prev_sample\n",
    "\n",
    "# 7. 可视化结果\n",
    "def plot_images(images, title):\n",
    "    plt.figure(figsize=(10, 4))\n",
    "    for i in range(min(16, len(images))):\n",
    "        plt.subplot(2, 8, i+1)\n",
    "        image = images[i].squeeze().cpu().numpy()\n",
    "        plt.imshow(image, cmap='gray')\n",
    "        plt.axis('off')\n",
    "    plt.suptitle(title)\n",
    "    plt.tight_layout()\n",
    "    plt.show()\n",
    "\n",
    "# 可视化原始测试图像\n",
    "test_images, _ = next(iter(test_loader))\n",
    "plot_images(test_images, \"Original Test Images\")\n",
    "\n",
    "# 可视化生成的图像\n",
    "generated_images = sample.clamp(-1, 1)  # 裁剪到[-1, 1]\n",
    "plot_images(generated_images, \"Generated Images\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6f3c6415-8520-491c-b34d-092a7be4b8dc",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
